package com.zhaoqi.hr.dto.response;

import com.zhaoqi.hr.entity.WorkerProfile;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 劳动者档案响应DTO
 */
public class WorkerProfileResponse {
    
    private Long id;
    private UserResponse user;
    private String skills;
    private String workExperience;
    private BigDecimal expectedSalary;
    private String availableTime;
    private Integer workRadius;
    private String certificates;
    private Integer completedJobs;
    private BigDecimal rating;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;

    public WorkerProfileResponse() {
    }

    public WorkerProfileResponse(WorkerProfile workerProfile) {
        this.id = workerProfile.getId();
        this.user = new UserResponse(workerProfile.getUser());
        this.skills = workerProfile.getSkills();
        this.workExperience = workerProfile.getWorkExperience();
        this.expectedSalary = workerProfile.getExpectedSalary();
        this.availableTime = workerProfile.getAvailableTime();
        this.workRadius = workerProfile.getWorkRadius();
        this.certificates = workerProfile.getCertificates();
        this.completedJobs = workerProfile.getCompletedJobs();
        this.rating = workerProfile.getRating();
        this.createdAt = workerProfile.getCreatedAt();
        this.updatedAt = workerProfile.getUpdatedAt();
    }

    // Getter and Setter methods
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public UserResponse getUser() {
        return user;
    }

    public void setUser(UserResponse user) {
        this.user = user;
    }

    public String getSkills() {
        return skills;
    }

    public void setSkills(String skills) {
        this.skills = skills;
    }

    public String getWorkExperience() {
        return workExperience;
    }

    public void setWorkExperience(String workExperience) {
        this.workExperience = workExperience;
    }

    public BigDecimal getExpectedSalary() {
        return expectedSalary;
    }

    public void setExpectedSalary(BigDecimal expectedSalary) {
        this.expectedSalary = expectedSalary;
    }

    public String getAvailableTime() {
        return availableTime;
    }

    public void setAvailableTime(String availableTime) {
        this.availableTime = availableTime;
    }

    public Integer getWorkRadius() {
        return workRadius;
    }

    public void setWorkRadius(Integer workRadius) {
        this.workRadius = workRadius;
    }

    public String getCertificates() {
        return certificates;
    }

    public void setCertificates(String certificates) {
        this.certificates = certificates;
    }

    public Integer getCompletedJobs() {
        return completedJobs;
    }

    public void setCompletedJobs(Integer completedJobs) {
        this.completedJobs = completedJobs;
    }

    public BigDecimal getRating() {
        return rating;
    }

    public void setRating(BigDecimal rating) {
        this.rating = rating;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
}
